var utils={};
/**
 * 字符串转Boolean
 */
utils.parseBool=function( _input ){
    if( typeof _input == 'string' ){
        _input = _input.replace( /[\s]/g, '' ).toLowerCase();
        if( _input && ( _input == 'false' 
                        || _input == '0' 
                        || _input == 'null'
                        || _input == 'undefined'
       )) _input = false;
       else if( _input ) _input = true;
    }
    return !!_input;
}
/**
 * 取小数点的N位
 * <br />JS 解析 浮点数的时候，经常出现各种不可预知情况，这个函数就是为了解决这个问题
 * @method  parseFinance
 * @static
 * @param   {number}    _i
 * @param   {int}       _dot, default = 2
 * @return  number
 */
utils.parseFinance=function ( _i, _dot ){
    _i = parseFloat( _i ) || 0;
    _dot = _dot || 2;
    if( _i && _dot ) {
        _i = parseFloat( _i.toFixed( _dot ) );
    }
    return _i;
}

/**
 * 以字符长短截取字符串, 非ASCII字符按2个字符算
 * x@btbtd.org 2013/03/18
 */
utils.char_slice_f=function ($s, $len, $reverse) {
	if (!$len)
		return $s;
	var r = [], c = 0, re = /[\u4e00-\u9fa5]/;

	if ($reverse) {
		for (var i = $s.length - 1; i >= 0; i--) {
			if (c >= $len)
				break;
			if (re.test($s[i]))
				c += 2;
			else
				c++;
			r.unshift($s[i]);
		}

	} else {
		for (var i = 0, j = $s.length; i < j; i++) {
			if (c >= $len)
				break;
			if (re.test($s[i]))
				c += 2;
			else
				c++;
			r.push($s[i]);
		}
	}

	return r.join('');
}
